home *** CD-ROM | disk | FTP | other *** search
-
- #import <appkit/appkit.h>
- #import <soundkit/Sound.h>
- #import <misckit/SearchableText.h>
-
- #import "UPath.h"
- #import "HitPath.h"
-
- #define RECT_NODETYPE 0
- #define ROUNDRECT_NODETYPE 1
- #define ELLIPSE_NODETYPE 2
- #define RHOMB_NODETYPE 3
- #define HEXAGON_NODETYPE 4
-
- #define ENDING_NONE 0
- #define ENDING_ARROW 1
- #define ENDING_HOLLOW 2
- #define ENDING_DOUBLE 3
- #define ENDING_SOLID 4
- #define ENDING_CIRCLE 5
-
- #define UPDATE_NONE 0x0
- #define UPDATE_TREEVIEW 0x1
- #define UPDATE_TEXTVIEW 0x2
- #define CHECK_RESIZE 0x4
- #define SCROLL_TREEVIEW 0x8
- #define UPDATE_ALL (UPDATE_TREEVIEW | UPDATE_TEXTVIEW | CHECK_RESIZE)
-
- @protocol TreeDelegate
-
- - updateViewsDirty:(BOOL)aBool rect:(NXRect *)aRect flag:(int)aFlag;
- - tree;
- - declareSelection:aNode;
- - (float)docScale;
- - setDocScale:(float)aScale;
- - currentNode;
- - (BOOL)showMarker;
- - undoManager;
-
- @end
-
- typedef struct _LINE {
- NXCoord dx,dy;
- struct _LINE *link;
- } Polyline;
-
- typedef struct _POLYGON {
- struct {
- Polyline *head,*tail;
- } lower,upper;
- } Polygon;
-
- typedef struct _PROPERTIES {
- NXCoord border,parentDistance;
- int zipped,shadow,fill,outline;
- id font;
- int pathKind,linkKind;
- NXColor fillColor,outlineColor,textColor,shadowColor;
- float linewidth;
- float biegFactor;
- char *defaultNodeName;
- int ending, parentEnding;
- } Properties;
-
- typedef struct _DRAWSTATE {
- float linewidth;
- NXColor color;
- id font;
- } DrawState;
-
- typedef struct _TEXTPLACER {
- float rect[2];
- float roundRect[3];
- float ellipse[2];
- float rhomb[2];
- float hexagon[3];
- } TextPlacer;
-
-
- @interface Tree:Object
- {
- Tree *parent,*child,*sibling;
- NXCoord width,height,border,parentDistance,linewidth;
- NXPoint pos,offset,deltaText,deltaLink,deltaShadow;
- Polygon contour;
- //BOOL zipped,updateLayout,shadow,outline,fill,selected;
- int zipped,updateLayout,shadow,outline,fill,selected;
- id nodeDescription;
- UPath *gpath;
- id delegate;
- int pathKind,linkKind;
- float biegFactor;
- int ending, parentEnding;
- NXColor fillColor,outlineColor,shadowColor;
- TextPlacer placer;
- NXDataLink *verknuepfung;
- //BOOL hasVerknuepfung;
- int hasVerknuepfung;
- Sound *geraeusch;
- //BOOL hasSound;
- int hasSound;
- TextFieldCell *textCell;
- NXRect textCellFrame;
- unsigned dgVertexNr[4], dgSymbolNr;
- }
-
- // creating and destroying
- - initLabel:(const char *)aLabel props:(Properties *)aProps;
- - free;
- - copyFromZone:(NXZone *)zone;
-
- // layout and drawing
- - involved:(const NXRect *)aRect addTo:aList link:aPath;
- - getBounds:(NXRect *)rect;
- - getTreeBounds:(NXRect *)rect
- lowerWidth:(NXCoord *)lowW lowerHeight:(NXCoord *)lowH;
- - hit:(HitPath *)hitUPath;
- - hitAttachment:(const NXPoint *)aPoint :(BOOL *)theAttach;
- - activateAttachment:(NXEvent *)event inView:aView;
- - activateSound:(NXEvent *)event inView:aView;
- - drawNodeShadow:(DrawState *)aState;
- - drawNodeFill:(DrawState *)aState;
- - drawNodeOutline:(DrawState *)aState knobs:(BOOL)aBool;
- - drawNodeEnding:(DrawState *)aState;
- - drawNodeCellsInView:aView attachments:(BOOL)aBool;
- - setOffset:(NXCoord)aX :(NXCoord)aY;
- - (NXCoord)width;
- - (NXCoord)height;
- - (Polygon *)contour;
- - layout;
- - getTextFrame:(NXRect *)aRect;
-
- // tree data structure manipulation
- - sibling;
- - child;
- - parent;
- - addTree:(Tree *)aTree;
- - removeChild:(Tree *)aChild;
- - insertTree:(Tree *)aTree at:(int)aPos;
-
- //properties
- - attachFile:(const char *)aFileName;
- - breakAttachment;
- - (BOOL)attached;
- - attachSound:(const char *)aSoundName;
- - breakSound;
- - (BOOL)hasSound;
- - attachedSound;
- - setSound:aSound;
- - applyStyleToSubtree;
- - promoteProps:(Properties *)aProps;
- - getProps:(Properties *)aProps;
- - changeTo:(Properties *)aProps;
-
- // tree properties
- - (NXCoord)border;
- - setBorder:(NXCoord)aBorder;
- - (NXCoord)parentDistance;
- - setParentDistance:(NXCoord)aParentDistance;
- - (BOOL)shadow;
- - setShadow:(BOOL)aShadow;
- - (int)linkKind;
- - setLinkKind:(int)aLinkKind;
- - changeLinkKind;
- - (float)biegFactor;
- - setBiegFactor:(float)aBiegFactor;
- - (NXColor)shadowColor;
- - setShadowColor:(NXColor)aColor;
-
- // node properties
- - (const char *)label;
- - setLabel:(const char *)aLabel;
- - setRTFDescription:(const char *)aDescription;
- - setDescription:(const char *)aDescription;
- - changeDescriptionFrom:aTextView;
- - putDescriptionIn:aTextView;
- - (int)pathKind;
- - setPathKind:(int)aPathKind;
- - (BOOL)outline;
- - setOutline:(BOOL)aOutline;
- - font;
- - changeFont:sender;
- - (NXColor)fillColor;
- - setFillColor:(NXColor)aColor;
- - (NXColor)outlineColor;
- - setOutlineColor:(NXColor)aColor;
- - (NXColor)textColor;
- - setTextColor:(NXColor)aColor;
- - (float)linewidth;
- - setLinewidth:(float)aLinewidth;
- - (BOOL)zipped;
- - changeZipped;
- - (int)ending;
- - setEnding:(int)aEnding;
- - (int)parentEnding;
- - setParentEnding:(int)aEnding;
-
- // misc
- - (BOOL)selected;
- - setSelected:(BOOL)aBOOL;
- - setUpdateLayout:(BOOL)aBool;
- - positionFrom:(const NXPoint *)aPoint;
- - setPositionTo:(const NXPoint *)aPoint;
- - linkPoint:(NXPoint *)aPoint;
- - linkParentPoint:(NXPoint *)aPoint;
- - linkChildPoint:(NXPoint *)aPoint;
- - delegate;
- - setDelegate:aDelegate;
- - setDelegateRecursive:aDelegate;
- - textDidEnd:textObject endChar:(unsigned short)endChar;
-
- // streaming to diagram2 format
- - (unsigned)dgSymbolNr;
- - dgWriteSymbol:(NXStream *)stream buffer:(char *)buffer filename:(const char *)aName;
- - dgWriteVertex:(NXStream *)stream buffer:(char *)buffer;
- - dgWriteLine:(NXStream *)stream buffer:(char *)buffer;
- + saveToD2Tree:aTree fromView:aView toFile:(const char *)aFile printInfo:aPrintInfo;
- + (unsigned)dgNextNr;
-
- // streaming
- - writeStyleToPBStream:(NXTypedStream *)stream;
- - readStyleFromPBStream:(NXTypedStream *)stream;
- - writeToPBStream:(NXTypedStream *)stream;
- - writeToMMAPB:(NXStream *)stream;
- - write:(NXTypedStream *)stream;
- - read:(NXTypedStream *)stream;
- - awake;
-
- // SearchableText support
- - searchTreeFor:(const char *)pattern untilNode:endNode
- reverse:(BOOL)rev regexpr:(BOOL)regexpr cases:(BOOL)cases position:(int *)positionS size:(int *)sizeS;
- - replaceTreeFor:(const char *)pattern with:(const char *)replacement untilNode:endNode
- regexpr:(BOOL)regexpr cases:(BOOL)cases result:(int *)result;
- - nextInDepth;
- - previousInDepth;
- - lastInDepth;
- - (BOOL)replaceLabelSelectionWith:(const char *)replacement pos:(int)aPos size:(int)aSize;
-
- @end
-
-
-
-